package 题目集.hash;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**	https://www.luogu.com.cn/problem/P8598
 * 简单题
 * 某涉密单位下发了某种票据，并要在年终全部收回。
 * 题目描述 每张票据有唯一的 ID 号，全年所有票据的 ID 号是连续的，但 ID 的开始数码是随机选定的。因为工作人员疏忽，在录入 ID
 * 号的时候发生了一处错误，造成了某个 ID 断号，另外一个 ID 重号。
 * 你的任务是通过编程，找出断号的 ID 和重号的 ID。
 * 数据保证断号不可能发生在最大和最小号。
 *
 */
public class 断号重号 {
	static boolean[] arr = new boolean[100000 + 1];

	public static void main(String[] args) throws IOException {
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(sc.readLine().trim());
		String[] line = null;
		int rep = 0, del = 0;
		int min = 100000;
		int max = 0;
		for (int i = 0; i < n; i++) {
			line = sc.readLine().split("\\s+");
			for (String s : line) {
				int v = Integer.parseInt(s);
				if (arr[v]) {
					rep = v;
				}
				arr[v] = true;
				min = Math.min(min, v);
				max = Math.max(max, v);
			}
		}
		while (min < max) {
			if (!arr[min]) {
				del = min;
				break;
			}
			min++;
		}
		System.out.println(del + " " + rep);
	}
}
